package com.movie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.movie.bean.*;
import com.movie.bean.vo.TicketOrderQueryVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface MovieService {
    List<Integer> getSeat(int sid);

    Session getSession(int sid);

    void buyTicket(List<Ticket> list);

    List<Ticket> checkTicket(List<Ticket> tickets);

    List<Movie> getAllMovieList();

    List<Session> getMovieSessionList(int mid);

    Page<Movie> getMovieListPageInfo(int pageNum, int pageSize);

    void delMovieByMid(int mid);

    void updateMovie(Movie movie, MultipartFile img);

    void addMovieSession(Session session);

    long gerTotalMoney();

    List<MovieRank> getMovieRankList();

    int getUserCount();

    int getAdminCount();

    int getMovieCount();

    int getTicketCount();

    void addSlideImg(int mid, String imgUrl, String createTime);

    List<SlideImg> getSlideImgList();

    List<Movie> getMovieListByKeyWord(String keyWord);

    Page<TicketOrder> getTicketOrderList(int pageNum, int pageSize);

    Page<TicketOrder> getTicketOrderByKeyWord(TicketOrderQueryVO ticketOrderQueryVO);

    void delSlideImgById(int id);

    List<Movie> getHotMovieList();

    List<Movie> getHotMovieByKeyWord(String mclass, String mnation);

    List<Movie> getMovieSearchResult(String searchType, String searchContent);

    Movie getMovieById(int mid);

    PageInfo<Favorite> getLikeMovie(Integer id, Integer pageNo, Integer pageSize);

    List<TicketOrder> getTicketOrderByStatus(Integer uid, Integer status, Integer pageNo, Integer pageSize);

    Long getRechargeCount();

    Map<String, Double> getRechargeRecent();

    TicketOrder selectOrder(String number);

    void returnTicket(String number,Integer uid);

    SlideImg slideImgDetail(Integer id);

    void updateSlideImg(int mid, String fileName,Integer id);

    void updateSlideImg1(int mid,Integer id);
}
